package com.itheima.health.dao;

import com.github.pagehelper.Page;
import com.itheima.health.pojo.Role;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 包名：com.itheima.health.dao
 *
 * @author zy
 * @date 2020 -09-05 14:51
 */
public interface RoleDao {
    /**
     * 查询所有角色
     * @return
     */
    List<Role> findAll();

    /**
     * 分页查询
     * @param queryString
     * @return
     */
    Page<Role> findByCondition(String queryString);

    /**
     * 添加角色
     * @param role
     */
    void add(Role role);

    /**
     * 添加角色和权限关系
     * @param roleId
     * @param permissionId
     */
    void addRelationBetweenRoleAndPermission(@Param("roleId") Integer roleId, @Param("permissionId") Integer permissionId);

    /**
     * 添加角色和菜单关系
     * @param roleId
     * @param menuId
     */
    void addRelationBetweenRoleAndMenu(@Param("roleId") Integer roleId, @Param("menuId") Integer menuId);

    /**
     * 判断角色有没有被用户使用
     * @param id
     * @return
     */
    Integer findCount(int id);

    /**
     * 删除角色和权限关系
     * @param id
     */
    void deleteRelationBetweenRoleAndPermission(int id);

    /**
     *删除角色和菜单关系
     * @param id
     */
    void deleteRelationBetweenRoleAndMenu(int id);

    /**
     * 删除角色
     * @param id
     */
    void deleteById(int id);

    /**
     * 回显数据
     * @param id
     * @return
     */
    Role findById(int id);
    List<Integer> findMenuIdsByRoleId(int id);
    List<Integer> findPermissionIdsByRoleId(int id);

    /**
     * 更新角色
     * @param role
     */
    void update(Role role);
}
